package cn.com.hbhgkj.web.struts2;

import java.io.ByteArrayInputStream;
import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;

/**
 * 提供图片验证码
 * @version 1.0 2012/08/22
 *
 */
public class SecurityCodeImageAction extends ActionSupport  implements SessionAware{
    //图片流
    private ByteArrayInputStream imageStream;
    //session域
    private Map<String, Object> session ;
    
    public ByteArrayInputStream getImageStream() {
        return imageStream;
    }

    public void setImageStream(ByteArrayInputStream imageStream) {
        this.imageStream = imageStream;
    }
    
    public void setSession(Map<String, Object> session) {
        this.session = session;
    }
    
    public String genCode() throws Exception {
        //如果开启Hard模式，可以不区分大小写
//        String securityCode = SecurityCode.getSecurityCode(4,SecurityCodeLevel.Hard, false).toLowerCase();
        
        //获取默认难度和长度的验证码
        String securityCode = SecurityCode.getSecurityCode();
        imageStream = SecurityImage.getImageAsInputStream(securityCode);
        //放入session中
        session.put("securityCode", securityCode);
        return SUCCESS;
    }
    
    private String code;
    
    public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}
	
	private boolean success;

	public boolean isSuccess() {
		return success;
	}

	public void setSuccess(boolean success) {
		this.success = success;
	}

	public String isCodeValid() throws Exception{
    	if(code.equalsIgnoreCase(session.get("securityCode").toString())){
    		this.success = true;
    	}else{
    		this.success = false;
    	}
    	
    	return "valid_success";
    		
    }
}